//
// RS Game Framework
// Copyright © 2009 Jedd Haberstro
// jhaberstro@gmail.com
// 
// $Id:
//

#ifndef RS_UNITTEST_CONSOLETESTREPORTER_HPP
#define RS_UNITTEST_CONSOLETESTREPORTER_HPP

#include "rs/unittest/TestReporter.hpp"
#include <vector>

namespace rs
{
    namespace unittest
    {
        class ConsoleTestReporter : public TestReporter
        {   
        private:
            
            typedef std::vector< std::string > FailureMessageContainer;
            
        public:
            virtual void ReportSuiteStart(TestSuite const* suite);
            
            virtual void ReportSuiteEnd(TestSuite const* suite);
            
            virtual void ReportTestSuccees(TestCase const* test);
            
            virtual void ReportTestFailure(TestCase const* test, TestFailure const* failureDetails);
            
            virtual void ReportSummary(unsigned int totalTests, unsigned int failedTests);
            
        private:
            
            FailureMessageContainer failureMessages_;
        };
    }
}

#endif // RS_UNITTEST_CONSOLETESTREPORTER_HPP